草庐IT

java - 模拟 UIInput 类进行测试

全部标签

ruby - RSpec 在带参数的方法上测试 ArgumentError

我在让这个简单的测试通过RSpec2.8时遇到了问题。我想编写一个简单的测试来检测需要参数的方法是否缺少参数(即ArgumentError:参数数量错误('x'代表'y'))。我的测试是像这样测试一个Gem模块方法:describe"#ip_lookup"doit"shouldraiseanArgumentErrorerrorifnoparameterspassed"doexpect(@geolocater.ip_lookup).toraise_error(ArgumentError)endend我的gem模块代码如下所示:moduleGeolocaterdefip_lookup(ip

ruby - 在 Ruby 中,为什么 `foo = true unless defined?(foo)` 不会进行分配?

这是怎么回事?“unless”的两种形式之间的细微差别是什么?>irb(main):001:0>foo=trueunlessdefined?(foo)=>nilirb(main):002:0>unlessdefined?(fooo);fooo=false;end=>false谢谢 最佳答案 显然,ruby在解析时创建局部变量并将它们设置为nil,因此无论代码是否执行,它都会被定义并完成。当代码在第一行被计算时,它不会执行赋值部分,因为foo被设置为nil。第二行,因为fooo还没有被解析,defined?返回nil让block里面的

ruby - 使用 sudo 进行 gem 安装 cocoapods

当我运行时$geminstallcocoapods我明白了Fetching:i18n-0.7.0.gem(100%)ERROR:Whileexecutinggem...(Gem::FilePermissionError)Youdon'thavewritepermissionsforthe/Library/Ruby/Gems/2.0.0directory.我读过这篇文章cocoaPodspodinstallPermissiondenied但是那里的答案并没有说明在你的geminstall上运行sudo是否正确(尽管在问题中被问到-即cocoaPods的sudo安装是否以错误的方式还是正常

ruby - 如何使用 lib minitest 或 Test :Unit? 为单元测试着色

我想在我的开发环境中进行单元测试输出颜色。但是,我无法让它在Linux(Debian和Ubuntu)上运行。当我包含以下库时:require'minitest/autorun'require'minitest/unit'require'minitest/pride'我得到:/usr/local/rvm/gems/ruby-1.9.2-p136/gems/minitest-2.3.1/lib/minitest/pride.rb:35:in`':undefinedmethod`output'forMiniTest::Unit:Class(NoMethodError)由代码引起:MiniTe

ruby - 如何使用 RSpec 测试无效参数引发 ArgumentError 异常?

我正在编写一个RubyGem,如果提供给其单一方法的参数无效,它可以引发ArgumentError。我如何使用RSpec为此编写测试?下面的例子展示了我想到的那种实现方式。bar方法需要一个bool参数(:baz),检查其类型以确保它实际上是一个bool值:moduleFoodefself.bar(options={})baz=options.fetch(:baz,true)validate_arguments(baz)endprivatedefself.validate_arguments(baz)raise(ArgumentError,":bazmustbeaboolean")un

ruby-on-rails - 将日期与 rails3 中的日期时间 Created_at 进行比较

所以我正在尝试做这样的事情:today=Date.today-1todaysReport=Report.where(:created_at=>today).find_by_user_id(user.id)问题是created_at是一个日期时间,所以它找不到任何匹配项。有什么建议吗? 最佳答案 你可能想要这样的东西:yesterday=Time.now-1.dayuser=User.find(user_id)todaysReport=user.reports.where(["created_at>=?ANDcreated_at

ruby - 在 rspec(和 cucumber )中测试 rake 任务

我是Ruby的新手,我一直在尝试学习Rake、RSpec和Cucumber。我找到了一些可以帮助我测试Rake任务的代码,但我无法让它正常工作。有人告诉我:http://blog.codahale.com/2007/12/20/rake-vs-rspec-fight/放弃这个:defdescribe_rake_task(task_name,filename,&block)require"rake"describe"Raketask#{task_name}"doattr_reader:taskbefore(:all)do@rake=Rake::Application.newRake.ap

ruby-on-rails - 使用 Rspec 和 Rack::Test 测试 REST-API 响应

我有点难过。我有以下集成测试:require"spec_helper"describe"/foods",:type=>:apidoincludeRack::Test::Methodslet(:current_user){create_user!}let(:host){"http://www.example.com"}beforedologin(current_user)@food=FactoryGirl.create_list(:food,10,:user=>current_user)endcontext"viewingallfoodsownedbyuser"doit"asJSON"d

ruby - ruby 1.9 和 RSpec2 有什么好的突变测试工具吗?

我曾经使用过Heckle,但由于ParseTree的问题,它与ruby​​1.9不兼容。我一直在寻找替代方案,但唯一看起来有前途的是Chaser,它没有任何明确的文档可供我使用,看看我是否可以让它与RSpec一起工作。它似乎具有Test::Unit依赖性。那么-是否有人使用任何很棒的工具来真正检查您的测试质量?或者-是否有提供比c0覆盖更好的覆盖工具?这将有助于解决同样的问题。我现在正在使用cover_me,但它是c0,就像rcov。 最佳答案 你看过Mutantgem吗??它适用于Rspec。Thereisanicetutoria

ruby-on-rails - 在不更改系统时钟的情况下在 rspec 测试中设置系统时间

我正在努力让Rails3应用程序准备好使用时区。我的开发机器在美国东部时间,我托管的服务器在UTC。在我的rspec测试中有没有一种方法可以更改ruby​​使用的系统时区,这样我就可以使用相同的系统时区运行测试,而不必更改我计算机上的系统时钟?我研究过Delorean和Timecop,它们不是我要找的。我正在寻找类似的东西Time.system_time_zone="UTC"...然后Time.now将返回UTC时间,而不是我的系统时区设置的时间。 最佳答案 before{Time.stub(:now){Time.now.utc}}